#define _CRT_SECURE_NO_WARNINGS 1

#include "SList.h"

void TestSList1()
{
	SListNode* phead = NULL;

	SListInsert(&phead, 0, 1);
	SListInsert(&phead, 1, 2);
	SListInsert(&phead, 1, 3);
	SListInsert(&phead, 0, 4);
	SListInsert(&phead, 0, 5);

	SListPrint(&phead);

	SListErase(&phead, 4);
	SListErase(&phead, 3);
	SListErase(&phead, 2);
	SListErase(&phead, 0);
	SListErase(&phead, 0);

}

void TestSList2()
{
	SListNode* phead = NULL;

	SListInsert(&phead, 0, 1);
	SListInsert(&phead, 1, 2);
	SListInsert(&phead, 1, 3);
	SListInsert(&phead, 0, 4);
	SListInsert(&phead, 0, 5);

	SListPrint(&phead);

	SListReverse(&phead);
	SListPrint(&phead);

}

int main()
{
	//TestSList1();
	TestSList2();

	return 0;
}

//#include <iostream>
//using namespace std;
//class BinInsert {
//public:
//    int binInsert(int n, int m, int j, int i) {
//        // write code here
//        for (int k = j; k <= i; k++)
//        {
//            n &= (~(1 << k));
//        }
//
//        int w = j;
//
//
//        for (int k = 0; k <= i - j + 1; k++)
//        {
//            if ((m & (1 << k)) != 0)
//            {
//                n |= (1 << w);
//            }
//            w++;
//        }
//        return n;
//    }
//};
//int main()
//{
//    binInsert(1024, 19, 2, 6);
//	return 0;
//}